package nourl.mythicmetals.registry;

import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import nourl.mythicmetals.MythicMetals;
import nourl.mythicmetals.blocks.MythicMetalsAnvils;
import nourl.mythicmetals.blocks.MythicMetalsBlocks;
import nourl.mythicmetals.blocks.MythicMetalsChains;
import nourl.mythicmetals.blocks.MythicMetalsOres;

public class RegisterBlocks {

    public static void register() {
        // Ores
        RegisterItem("adamantite_ore", MythicMetalsOres.ADAMANTITE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("aetherium_ore", MythicMetalsOres.AETHERIUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("aquarium_ore", MythicMetalsOres.AQUARIUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("banglum_ore", MythicMetalsOres.BANGLUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("carmot_ore", MythicMetalsOres.CARMOT_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("copper_ore", MythicMetalsOres.COPPER_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("kyber_ore", MythicMetalsOres.KYBER_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("manganese_ore", MythicMetalsOres.MANGANESE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("midas_gold_ore", MythicMetalsOres.MIDAS_GOLD_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("mythril_ore", MythicMetalsOres.MYTHRIL_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("orichalcum_ore", MythicMetalsOres.ORICHALCUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("osmium_ore", MythicMetalsOres.OSMIUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("platinum_ore", MythicMetalsOres.PLATINUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("prometheum_ore", MythicMetalsOres.PROMETHEUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("quadrillum_ore", MythicMetalsOres.QUADRILLUM_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("runite_ore", MythicMetalsOres.RUNITE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("silver_ore", MythicMetalsOres.SILVER_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("starrite_ore", MythicMetalsOres.STARRITE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("stormyx_ore", MythicMetalsOres.STORMYX_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("tantalite_ore", MythicMetalsOres.TANTALITE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("tin_ore", MythicMetalsOres.TIN_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("truesilver_ore", MythicMetalsOres.TRUESILVER_ORE, MythicMetals.MYTHICMETALS);
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.MOD_ID, "unobtainium_ore"), new BlockItem(MythicMetalsOres.UNOBTAINIUM_ORE, new Item.Settings().group(MythicMetals.MYTHICMETALS).fireproof()));
        RegisterItem("ur_ore", MythicMetalsOres.UR_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("vermiculite_ore", MythicMetalsOres.VERMICULITE_ORE, MythicMetals.MYTHICMETALS);
        RegisterItem("zinc_ore", MythicMetalsOres.ZINC_ORE, MythicMetals.MYTHICMETALS);

        RegisterBlock("adamantite_ore", MythicMetalsOres.ADAMANTITE_ORE);
        RegisterBlock("aetherium_ore", MythicMetalsOres.AETHERIUM_ORE);
        RegisterBlock("aquarium_ore", MythicMetalsOres.AQUARIUM_ORE);
        RegisterBlock("banglum_ore", MythicMetalsOres.BANGLUM_ORE);
        RegisterBlock("carmot_ore", MythicMetalsOres.CARMOT_ORE);
        RegisterBlock("copper_ore", MythicMetalsOres.COPPER_ORE);
        RegisterBlock("kyber_ore", MythicMetalsOres.KYBER_ORE);
        RegisterBlock("manganese_ore", MythicMetalsOres.MANGANESE_ORE);
        RegisterBlock("midas_gold_ore", MythicMetalsOres.MIDAS_GOLD_ORE);
        RegisterBlock("mythril_ore", MythicMetalsOres.MYTHRIL_ORE);
        RegisterBlock("orichalcum_ore", MythicMetalsOres.ORICHALCUM_ORE);
        RegisterBlock("osmium_ore", MythicMetalsOres.OSMIUM_ORE);
        RegisterBlock("platinum_ore", MythicMetalsOres.PLATINUM_ORE);
        RegisterBlock("prometheum_ore", MythicMetalsOres.PROMETHEUM_ORE);
        RegisterBlock("quadrillum_ore", MythicMetalsOres.QUADRILLUM_ORE);
        RegisterBlock("runite_ore", MythicMetalsOres.RUNITE_ORE);
        RegisterBlock("silver_ore", MythicMetalsOres.SILVER_ORE);
        RegisterBlock("starrite_ore", MythicMetalsOres.STARRITE_ORE);
        RegisterBlock("stormyx_ore", MythicMetalsOres.STORMYX_ORE);
        RegisterBlock("tantalite_ore", MythicMetalsOres.TANTALITE_ORE);
        RegisterBlock("tin_ore", MythicMetalsOres.TIN_ORE);
        RegisterBlock("truesilver_ore", MythicMetalsOres.TRUESILVER_ORE);
        RegisterBlock("unobtainium_ore", MythicMetalsOres.UNOBTAINIUM_ORE);
        RegisterBlock("ur_ore", MythicMetalsOres.UR_ORE);
        RegisterBlock("vermiculite_ore", MythicMetalsOres.VERMICULITE_ORE);
        RegisterBlock("zinc_ore", MythicMetalsOres.ZINC_ORE);

        // Storage Blocks
        RegisterItem("adamantite_block", MythicMetalsBlocks.ADAMANTITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("aetherium_block", MythicMetalsBlocks.AETHERIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("aquarium_block", MythicMetalsBlocks.AQUARIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("argonium_block", MythicMetalsBlocks.ARGONIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("banglum_block", MythicMetalsBlocks.BANGLUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("brass_block", MythicMetalsBlocks.BRASS_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("bronze_block", MythicMetalsBlocks.BRONZE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("carmot_block", MythicMetalsBlocks.CARMOT_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("celestium_block", MythicMetalsBlocks.CELESTIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("copper_block", MythicMetalsBlocks.COPPER_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("discordium_block", MythicMetalsBlocks.DISCORDIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("durasteel_block", MythicMetalsBlocks.DURASTEEL_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("electrum_block", MythicMetalsBlocks.ELECTRUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("etherite_block", MythicMetalsBlocks.ETHERITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("hallowed_block", MythicMetalsBlocks.HALLOWED_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("kyber_block", MythicMetalsBlocks.KYBER_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("manganese_block", MythicMetalsBlocks.MANGANESE_BLOCK, MythicMetals.MYTHICMETALS);
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.MOD_ID, "metallurgium_block"), new BlockItem(MythicMetalsBlocks.METALLURGIUM_BLOCK, new Item.Settings().group(MythicMetals.MYTHICMETALS).fireproof()));
        RegisterItem("midas_gold_block", MythicMetalsBlocks.MIDAS_GOLD_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("mythril_block", MythicMetalsBlocks.MYTHRIL_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("orichalcum_block", MythicMetalsBlocks.ORICHALCUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("osmium_block", MythicMetalsBlocks.OSMIUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("platinum_block", MythicMetalsBlocks.PLATINUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("prometheum_block", MythicMetalsBlocks.PROMETHEUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("quadrillum_block", MythicMetalsBlocks.QUADRILLUM_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("quicksilver_block", MythicMetalsBlocks.QUICKSILVER_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("runite_block", MythicMetalsBlocks.RUNITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("silver_block", MythicMetalsBlocks.SILVER_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("slowsilver_block", MythicMetalsBlocks.SLOWSILVER_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("starrite_block", MythicMetalsBlocks.STARRITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("steel_block", MythicMetalsBlocks.STEEL_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("stormyx_block", MythicMetalsBlocks.STORMYX_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("tantalite_block", MythicMetalsBlocks.TANTALITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("tin_block", MythicMetalsBlocks.TIN_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("truesilver_block", MythicMetalsBlocks.TRUESILVER_BLOCK, MythicMetals.MYTHICMETALS);
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.MOD_ID, "unobtainium_block"), new BlockItem(MythicMetalsBlocks.UNOBTAINIUM_BLOCK, new Item.Settings().group(MythicMetals.MYTHICMETALS).fireproof()));
        RegisterItem("ur_block", MythicMetalsBlocks.UR_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("vermiculite_block", MythicMetalsBlocks.VERMICULITE_BLOCK, MythicMetals.MYTHICMETALS);
        RegisterItem("zinc_block", MythicMetalsBlocks.ZINC_BLOCK, MythicMetals.MYTHICMETALS);

        RegisterBlock("adamantite_block", MythicMetalsBlocks.ADAMANTITE_BLOCK);
        RegisterBlock("aetherium_block", MythicMetalsBlocks.AETHERIUM_BLOCK);
        RegisterBlock("aquarium_block", MythicMetalsBlocks.AQUARIUM_BLOCK);
        RegisterBlock("argonium_block", MythicMetalsBlocks.ARGONIUM_BLOCK);
        RegisterBlock("banglum_block", MythicMetalsBlocks.BANGLUM_BLOCK);
        RegisterBlock("brass_block", MythicMetalsBlocks.BRASS_BLOCK);
        RegisterBlock("bronze_block", MythicMetalsBlocks.BRONZE_BLOCK);
        RegisterBlock("carmot_block", MythicMetalsBlocks.CARMOT_BLOCK);
        RegisterBlock("celestium_block", MythicMetalsBlocks.CELESTIUM_BLOCK);
        RegisterBlock("copper_block", MythicMetalsBlocks.COPPER_BLOCK);
        RegisterBlock("discordium_block", MythicMetalsBlocks.DISCORDIUM_BLOCK);
        RegisterBlock("durasteel_block", MythicMetalsBlocks.DURASTEEL_BLOCK);
        RegisterBlock("electrum_block", MythicMetalsBlocks.ELECTRUM_BLOCK);
        RegisterBlock("etherite_block", MythicMetalsBlocks.ETHERITE_BLOCK);
        RegisterBlock("hallowed_block", MythicMetalsBlocks.HALLOWED_BLOCK);
        RegisterBlock("kyber_block", MythicMetalsBlocks.KYBER_BLOCK);
        RegisterBlock("manganese_block", MythicMetalsBlocks.MANGANESE_BLOCK);
        RegisterBlock("metallurgium_block", MythicMetalsBlocks.METALLURGIUM_BLOCK);
        RegisterBlock("midas_gold_block", MythicMetalsBlocks.MIDAS_GOLD_BLOCK);
        RegisterBlock("mythril_block", MythicMetalsBlocks.MYTHRIL_BLOCK);
        RegisterBlock("orichalcum_block", MythicMetalsBlocks.ORICHALCUM_BLOCK);
        RegisterBlock("osmium_block", MythicMetalsBlocks.OSMIUM_BLOCK);
        RegisterBlock("platinum_block", MythicMetalsBlocks.PLATINUM_BLOCK);
        RegisterBlock("prometheum_block", MythicMetalsBlocks.PROMETHEUM_BLOCK);
        RegisterBlock("quadrillum_block", MythicMetalsBlocks.QUADRILLUM_BLOCK);
        RegisterBlock("quicksilver_block", MythicMetalsBlocks.QUICKSILVER_BLOCK);
        RegisterBlock("runite_block", MythicMetalsBlocks.RUNITE_BLOCK);
        RegisterBlock("silver_block", MythicMetalsBlocks.SILVER_BLOCK);
        RegisterBlock("slowsilver_block", MythicMetalsBlocks.SLOWSILVER_BLOCK);
        RegisterBlock("starrite_block", MythicMetalsBlocks.STARRITE_BLOCK);
        RegisterBlock("steel_block", MythicMetalsBlocks.STEEL_BLOCK);
        RegisterBlock("stormyx_block", MythicMetalsBlocks.STORMYX_BLOCK);
        RegisterBlock("tantalite_block", MythicMetalsBlocks.TANTALITE_BLOCK);
        RegisterBlock("tin_block", MythicMetalsBlocks.TIN_BLOCK);
        RegisterBlock("truesilver_block", MythicMetalsBlocks.TRUESILVER_BLOCK);
        RegisterBlock("unobtainium_block", MythicMetalsBlocks.UNOBTAINIUM_BLOCK);
        RegisterBlock("ur_block", MythicMetalsBlocks.UR_BLOCK);
        RegisterBlock("vermiculite_block", MythicMetalsBlocks.VERMICULITE_BLOCK);
        RegisterBlock("zinc_block", MythicMetalsBlocks.ZINC_BLOCK);

        // Anvils
        RegisterItem("adamantite_anvil", MythicMetalsAnvils.ADAMANTITE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("aetherium_anvil", MythicMetalsAnvils.AETHERIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("aquarium_anvil", MythicMetalsAnvils.AQUARIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("argonium_anvil", MythicMetalsAnvils.ARGONIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("banglum_anvil", MythicMetalsAnvils.BANGLUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("brass_anvil", MythicMetalsAnvils.BRASS_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("bronze_anvil", MythicMetalsAnvils.BRONZE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("carmot_anvil", MythicMetalsAnvils.CARMOT_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("celestium_anvil", MythicMetalsAnvils.CELESTIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("discordium_anvil", MythicMetalsAnvils.DISCORDIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("durasteel_anvil", MythicMetalsAnvils.DURASTEEL_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("electrum_anvil", MythicMetalsAnvils.ELECTRUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("etherite_anvil", MythicMetalsAnvils.ETHERITE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("hallowed_anvil", MythicMetalsAnvils.HALLOWED_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("kyber_anvil", MythicMetalsAnvils.KYBER_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("manganese_anvil", MythicMetalsAnvils.MANGANESE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.MOD_ID, "metallurgium_anvil"), new BlockItem(MythicMetalsAnvils.METALLURGIUM_ANVIL, new Item.Settings().group(MythicMetals.MYTHICMETALS_DECOR).fireproof()));
        RegisterItem("midas_gold_anvil", MythicMetalsAnvils.MIDAS_GOLD_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("mythril_anvil", MythicMetalsAnvils.MYTHRIL_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("orichalcum_anvil", MythicMetalsAnvils.ORICHALCUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("osmium_anvil", MythicMetalsAnvils.OSMIUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("platinum_anvil", MythicMetalsAnvils.PLATINUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("prometheum_anvil", MythicMetalsAnvils.PROMETHEUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("quadrillum_anvil", MythicMetalsAnvils.QUADRILLUM_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("quicksilver_anvil", MythicMetalsAnvils.QUICKSILVER_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("runite_anvil", MythicMetalsAnvils.RUNITE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("silver_anvil", MythicMetalsAnvils.SILVER_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("slowsilver_anvil", MythicMetalsAnvils.SLOWSILVER_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("starrite_anvil", MythicMetalsAnvils.STARRITE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("steel_anvil", MythicMetalsAnvils.STEEL_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("stormyx_anvil", MythicMetalsAnvils.STORMYX_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("tantalite_anvil", MythicMetalsAnvils.TANTALITE_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("truesilver_anvil", MythicMetalsAnvils.TRUESILVER_ANVIL, MythicMetals.MYTHICMETALS_DECOR);
        RegisterItem("ur_anvil", MythicMetalsAnvils.UR_ANVIL, MythicMetals.MYTHICMETALS_DECOR);

        RegisterBlock("adamantite_anvil", MythicMetalsAnvils.ADAMANTITE_ANVIL);
        RegisterBlock("aetherium_anvil", MythicMetalsAnvils.AETHERIUM_ANVIL);
        RegisterBlock("aquarium_anvil", MythicMetalsAnvils.AQUARIUM_ANVIL);
        RegisterBlock("argonium_anvil", MythicMetalsAnvils.ARGONIUM_ANVIL);
        RegisterBlock("banglum_anvil", MythicMetalsAnvils.BANGLUM_ANVIL);
        RegisterBlock("brass_anvil", MythicMetalsAnvils.BRASS_ANVIL);
        RegisterBlock("bronze_anvil", MythicMetalsAnvils.BRONZE_ANVIL);
        RegisterBlock("carmot_anvil", MythicMetalsAnvils.CARMOT_ANVIL);
        RegisterBlock("celestium_anvil", MythicMetalsAnvils.CELESTIUM_ANVIL);
        RegisterBlock("discordium_anvil", MythicMetalsAnvils.DISCORDIUM_ANVIL);
        RegisterBlock("durasteel_anvil", MythicMetalsAnvils.DURASTEEL_ANVIL);
        RegisterBlock("electrum_anvil", MythicMetalsAnvils.ELECTRUM_ANVIL);
        RegisterBlock("etherite_anvil", MythicMetalsAnvils.ETHERITE_ANVIL);
        RegisterBlock("hallowed_anvil", MythicMetalsAnvils.HALLOWED_ANVIL);
        RegisterBlock("kyber_anvil", MythicMetalsAnvils.KYBER_ANVIL);
        RegisterBlock("manganese_anvil", MythicMetalsAnvils.MANGANESE_ANVIL);
        RegisterBlock("metallurgium_anvil", MythicMetalsAnvils.METALLURGIUM_ANVIL);
        RegisterBlock("midas_gold_anvil", MythicMetalsAnvils.MIDAS_GOLD_ANVIL);
        RegisterBlock("mythril_anvil", MythicMetalsAnvils.MYTHRIL_ANVIL);
        RegisterBlock("orichalcum_anvil", MythicMetalsAnvils.ORICHALCUM_ANVIL);
        RegisterBlock("osmium_anvil", MythicMetalsAnvils.OSMIUM_ANVIL);
        RegisterBlock("platinum_anvil", MythicMetalsAnvils.PLATINUM_ANVIL);
        RegisterBlock("prometheum_anvil", MythicMetalsAnvils.PROMETHEUM_ANVIL);
        RegisterBlock("quadrillum_anvil", MythicMetalsAnvils.QUADRILLUM_ANVIL);
        RegisterBlock("quicksilver_anvil", MythicMetalsAnvils.QUICKSILVER_ANVIL);
        RegisterBlock("runite_anvil", MythicMetalsAnvils.RUNITE_ANVIL);
        RegisterBlock("silver_anvil", MythicMetalsAnvils.SILVER_ANVIL);
        RegisterBlock("slowsilver_anvil", MythicMetalsAnvils.SLOWSILVER_ANVIL);
        RegisterBlock("starrite_anvil", MythicMetalsAnvils.STARRITE_ANVIL);
        RegisterBlock("steel_anvil", MythicMetalsAnvils.STEEL_ANVIL);
        RegisterBlock("stormyx_anvil", MythicMetalsAnvils.STORMYX_ANVIL);
        RegisterBlock("tantalite_anvil", MythicMetalsAnvils.TANTALITE_ANVIL);
        RegisterBlock("truesilver_anvil", MythicMetalsAnvils.TRUESILVER_ANVIL);
        RegisterBlock("ur_anvil", MythicMetalsAnvils.UR_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.ADAMANTITE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.AETHERIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.AQUARIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.ARGONIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.BANGLUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.BRASS_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.BRONZE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.CARMOT_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.CELESTIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.DISCORDIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.DURASTEEL_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.ELECTRUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.ETHERITE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.HALLOWED_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.KYBER_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.MANGANESE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.METALLURGIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.MIDAS_GOLD_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.MYTHRIL_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.ORICHALCUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.OSMIUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.PLATINUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.PROMETHEUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.QUADRILLUM_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.QUICKSILVER_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.RUNITE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.SILVER_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.SLOWSILVER_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.STARRITE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.STEEL_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.STORMYX_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.TANTALITE_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.TRUESILVER_ANVIL);
        MythicMetalsAnvils.ANVILS.add(MythicMetalsAnvils.UR_ANVIL);

        // Chains
        RegisterChainItem("adamantite_chain", MythicMetalsChains.ADAMANTITE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("aetherium_chain", MythicMetalsChains.AETHERIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("aquarium_chain", MythicMetalsChains.AQUARIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("argonium_chain", MythicMetalsChains.ARGONIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("banglum_chain", MythicMetalsChains.BANGLUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("brass_chain", MythicMetalsChains.BRASS_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("bronze_chain", MythicMetalsChains.BRONZE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("carmot_chain", MythicMetalsChains.CARMOT_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("celestium_chain", MythicMetalsChains.CELESTIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("discordium_chain", MythicMetalsChains.DISCORDIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("durasteel_chain", MythicMetalsChains.DURASTEEL_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("electrum_chain", MythicMetalsChains.ELECTRUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("etherite_chain", MythicMetalsChains.ETHERITE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("hallowed_chain", MythicMetalsChains.HALLOWED_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("kyber_chain", MythicMetalsChains.KYBER_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("manganese_chain", MythicMetalsChains.MANGANESE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.CHAIN_ID, "metallurgium_chain"), new BlockItem(MythicMetalsChains.METALLURGIUM_CHAIN, new Item.Settings().group(MythicMetals.MYTHICMETALS_DECOR).fireproof()));
        RegisterChainItem("midas_gold_chain", MythicMetalsChains.MIDAS_GOLD_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("mythril_chain", MythicMetalsChains.MYTHRIL_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("orichalcum_chain", MythicMetalsChains.ORICHALCUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("osmium_chain", MythicMetalsChains.OSMIUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("platinum_chain", MythicMetalsChains.PLATINUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("prometheum_chain", MythicMetalsChains.PROMETHEUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("quadrillum_chain", MythicMetalsChains.QUADRILLUM_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("quicksilver_chain", MythicMetalsChains.QUICKSILVER_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("runite_chain", MythicMetalsChains.RUNITE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("silver_chain", MythicMetalsChains.SILVER_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("slowsilver_chain", MythicMetalsChains.SLOWSILVER_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("starrite_chain", MythicMetalsChains.STARRITE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("steel_chain", MythicMetalsChains.STEEL_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("stormyx_chain", MythicMetalsChains.STORMYX_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("tantalite_chain", MythicMetalsChains.TANTALITE_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("truesilver_chain", MythicMetalsChains.TRUESILVER_CHAIN, MythicMetals.MYTHICMETALS_DECOR);
        RegisterChainItem("ur_chain", MythicMetalsChains.UR_CHAIN, MythicMetals.MYTHICMETALS_DECOR);

        RegisterChainBlock("adamantite_chain", MythicMetalsChains.ADAMANTITE_CHAIN);
        RegisterChainBlock("aetherium_chain", MythicMetalsChains.AETHERIUM_CHAIN);
        RegisterChainBlock("aquarium_chain", MythicMetalsChains.AQUARIUM_CHAIN);
        RegisterChainBlock("argonium_chain", MythicMetalsChains.ARGONIUM_CHAIN);
        RegisterChainBlock("banglum_chain", MythicMetalsChains.BANGLUM_CHAIN);
        RegisterChainBlock("brass_chain", MythicMetalsChains.BRASS_CHAIN);
        RegisterChainBlock("bronze_chain", MythicMetalsChains.BRONZE_CHAIN);
        RegisterChainBlock("carmot_chain", MythicMetalsChains.CARMOT_CHAIN);
        RegisterChainBlock("celestium_chain", MythicMetalsChains.CELESTIUM_CHAIN);
        RegisterChainBlock("discordium_chain", MythicMetalsChains.DISCORDIUM_CHAIN);
        RegisterChainBlock("durasteel_chain", MythicMetalsChains.DURASTEEL_CHAIN);
        RegisterChainBlock("electrum_chain", MythicMetalsChains.ELECTRUM_CHAIN);
        RegisterChainBlock("etherite_chain", MythicMetalsChains.ETHERITE_CHAIN);
        RegisterChainBlock("hallowed_chain", MythicMetalsChains.HALLOWED_CHAIN);
        RegisterChainBlock("kyber_chain", MythicMetalsChains.KYBER_CHAIN);
        RegisterChainBlock("manganese_chain", MythicMetalsChains.MANGANESE_CHAIN);
        RegisterChainBlock("metallurgium_chain", MythicMetalsChains.METALLURGIUM_CHAIN);
        RegisterChainBlock("midas_gold_chain", MythicMetalsChains.MIDAS_GOLD_CHAIN);
        RegisterChainBlock("mythril_chain", MythicMetalsChains.MYTHRIL_CHAIN);
        RegisterChainBlock("orichalcum_chain", MythicMetalsChains.ORICHALCUM_CHAIN);
        RegisterChainBlock("osmium_chain", MythicMetalsChains.OSMIUM_CHAIN);
        RegisterChainBlock("platinum_chain", MythicMetalsChains.PLATINUM_CHAIN);
        RegisterChainBlock("prometheum_chain", MythicMetalsChains.PROMETHEUM_CHAIN);
        RegisterChainBlock("quadrillum_chain", MythicMetalsChains.QUADRILLUM_CHAIN);
        RegisterChainBlock("quicksilver_chain", MythicMetalsChains.QUICKSILVER_CHAIN);
        RegisterChainBlock("runite_chain", MythicMetalsChains.RUNITE_CHAIN);
        RegisterChainBlock("silver_chain", MythicMetalsChains.SILVER_CHAIN);
        RegisterChainBlock("slowsilver_chain", MythicMetalsChains.SLOWSILVER_CHAIN);
        RegisterChainBlock("starrite_chain", MythicMetalsChains.STARRITE_CHAIN);
        RegisterChainBlock("steel_chain", MythicMetalsChains.STEEL_CHAIN);
        RegisterChainBlock("stormyx_chain", MythicMetalsChains.STORMYX_CHAIN);
        RegisterChainBlock("tantalite_chain", MythicMetalsChains.TANTALITE_CHAIN);
        RegisterChainBlock("truesilver_chain", MythicMetalsChains.TRUESILVER_CHAIN);
        RegisterChainBlock("ur_chain", MythicMetalsChains.UR_CHAIN);
    }

    private static void RegisterBlock(String path, Block block) {
        Registry.register(Registry.BLOCK, new Identifier(MythicMetals.MOD_ID, path), block);
    }

    private static void RegisterItem(String path, Block block, ItemGroup group) {
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.MOD_ID, path), new BlockItem(block, new Item.Settings().group(group)));
    }

    private static void RegisterChainItem(String path, Block block, ItemGroup group) {
        Registry.register(Registry.ITEM, new Identifier(MythicMetals.CHAIN_ID, path), new BlockItem(block, new Item.Settings().group(group)));
    }

    private static void RegisterChainBlock(String path, Block block) {
        Registry.register(Registry.BLOCK, new Identifier(MythicMetals.CHAIN_ID, path), block);
    }
}
